package com.easyadmin.pro.modules.sys.service;

import com.easyadmin.pro.common.vo.RestResult;
import com.easyadmin.pro.common.vo.RouterTree;
import com.easyadmin.pro.modules.sys.query.RouterQueryVo;
import com.easyadmin.pro.modules.sys.rest.RouterInfoResult;
import com.easyadmin.pro.modules.sys.vo.RouterInfoVo;
import com.github.pagehelper.Page;
import com.mybatisflex.core.service.IService;
import com.easyadmin.pro.modules.sys.entity.RouterEntity;

import java.util.List;

/**
 *  服务层。
 *
 * @author xulin
 * @since 2024-04-02
 */
public interface IRouterService extends IService<RouterEntity> {

    /**
     * 查询路由信息
     * @param routerQuery
     * @return
     */
    List<RouterInfoResult> queryRouterPage(RouterQueryVo routerQuery);

    /**
     * 初始化路由树
     * @param parentId
     * @return
     */
    List<RouterTree> initRouterTree(Long parentId);

    /**
     * 刷新缓存
     * @param refreshKey
     * @return
     */
    void refresh(String refreshKey);

    /**
     * 更新路由信息
     * @param routerInfo
     * @return
     */
    Integer disabledRouter(RouterInfoVo routerInfo);

    /**
     * 获取缓存路由
     * @return
     */
    List<RouterTree> cacheRouter();
}
